![]() | ![]() |
%macro rspmeans(indata=, out=, group=, var=); proc sort data=&indata out=rspmeanstmp; by &group; run; proc means data=rspmeanstmp; by &group; var &var; output out=rspmmeans N=N mean=mean std=std median=med; proc means data=rspmeanstmp; var &var; output out=rspallmeans mean=mean; run; proc sql; create table &out as select (i.%trim(%left(&var))-m.mean+a.mean) as &var, %selectvar(indata=rspmeanstmp, dalias=i, except=&var) from rspmeanstmp as i, rspmmeans as m, rspallmeans as a where i.%trim(%left(&group))=m.%trim(%left(&group)); drop table rspmeanstmp; drop table rspmmeans; drop table rspallmeans; quit; %mend rspmeans;